package com.easylinkin.linkappapi.elasticsearch.entity;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;


@Data
@AllArgsConstructor
public class EsEtlStatisticModel{
    /*
    jobId
     */
    private String jobId;
    /*
    计算规则Id
     */
    private String calcRuleId;
    /*
    计算规则名称
     */
    private String calcRuleName;
    /*
    calcCfgId
     */
    private String calcCfgId;
    /**
     * calcCfgName
     */
    private String calcCfgName;
    /**
     * 数据源id
     */
    private String dataSourceId;
    /*
    数据源名称
     */
    private String dataSource;
    /*
    设备编号
     */
    private String deviceCode;
    /*
    设备类型
     */
    private String deviceName;
    /*
    设备型号
     */
    private String uniqueMark;
    /*
    etl类型
     */
    private String etlKind;
    /*
    etl级别
     */
    private String etlClass;
    /*
    etl统计通用值
     */
    private Double etlValue;
    /**
     * 日计算量
     */
    private Double day;
    /*
    etl统计JSON数据
     */
    private String etlJsonValue;
    /**
     *  计算结束时间
     */
    private String calcDate;
    /**
     * 计算时间（新增属性）格式 2021012500
     */
    private Long calcTime;
    /*
    创建时间
     */
    private String createTime;

    private Date dateTime;

    public String haveDayTime() {
        return this.calcDate;
    }


    public String haveMonthTime() {
        String formatHMS = "yyyy-MM";
        DateFormat sdf = new SimpleDateFormat(formatHMS);
        String month = "";
        try {
            Date newDate = sdf.parse(this.calcDate);
            month = sdf.format(newDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return month;
    }


    /**
     * 设置 etlValue CalcDate
     */
    public void initEtlValueAndCalcDate() {
        this.setEtlValue(this.getDay());
        try {
            Date date = new SimpleDateFormat("yyyyMMdd").parse(this.getCalcTime().toString().substring(0, 8));
//            2021012200 是表示 2021-01-21 日的数据
            date = new Date(date.getTime() - 24 * 60 * 60 * 1000);
            this.setCalcDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}
